package com.cskaoyan.javase.operator.ternary7;

/**
 * @description: 小练习
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 *
 * 获取三个整数中的最大值
 * 可以用三目运算符
 *  * 三目运算符最大的特点就是它一定会执行一个表达式，一定会有结果
 *  这是三目运算符最大的特点，同时也是他最大的缺点
 *  这个严重限制了三目运算符的使用场景
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        //可以先计算两个数的最大值，然后和最后一个数比较
        int temp;//用一个中间值接收
        int max;
        temp = (a > b) ? a : b; //获取a和b之间的最大值
        max = (temp > c) ? temp : c; //获取temp和c之间的最大值
        System.out.println(max);

        //我能不能一步登天，一步就完成上述步骤呢？
        //其实是可以的，就是用复合三目运算符
        max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
        System.out.println(max);

        //使用复合三目运算符很酷也很简单，但是被领导批评的样子也很狼狈
        //实际开发中，不要使用过于复杂的三目运算符，否则会导致程序可读性变差

        System.out.println("----------------------------");
        //找到两个数的最大值，并且直接打印他
        System.out.println();
        //(a > b) ? System.out.println("a是最大值" + a) : System.out.println("b是最大值" + b);
        //什么是语句，什么是表达式
        //语句是后面可以加;的，就是语句
        //表达式后面不能加;的
        System.out.println("a是最大值" + a);
        System.out.println("b是最大值" + b);

    }
}
